package com.gpframework.module.manufacture.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gpframework.module.manufacture.domain.GpProductionScheduling;
import com.gpframework.module.manufacture.domain.req.GpProductionDetailsUpdate;
import com.gpframework.module.manufacture.domain.req.GpProductionSchedulingUpdate;
import com.gpframework.module.manufacture.domain.vo.GpProductionSchedulingVo;

import java.util.List;
/**
 * @ClassName GpProductionScheduling
 * @Author gpframework
 * @Date 2023-12-12
 * @Version 1.0.0
 * @Description 生产排单Service接口
 */
public interface IGpProductionSchedulingService extends IService<GpProductionScheduling> {

    /**
     * @Description 查询列表返回VO 用于返回给前端的列表接口
     * @Author gpframework
     * @Date 2023-12-12
     * @Param [lqw]
     * @Return List<GpProductionSchedulingVo>
     */
    List<GpProductionSchedulingVo> listVo(QueryWrapper<GpProductionScheduling> lqw);

    /**
     * @Description 通过查询详情VO 用于返回给前端的列详情接口
     * @Author gpframework
     * @Date 2023-12-12
     * @Param [id]
     * @Return GpProductionSchedulingVo
     */
    GpProductionSchedulingVo getVoById(Long id);

    /**
     * 生成生产排单表
     * @param
     * @return
     */
    //boolean createProductionScheduling(Long id, String createBy);

    boolean createProductionScheduling(GpProductionDetailsUpdate gpProductionDetailsUpdate, String createBy);

    boolean edit(List<GpProductionSchedulingUpdate> list);

    boolean editOne(GpProductionSchedulingUpdate gpProductionSchedulingUpdate);

    boolean copy(Long id, Integer copyNum);

    boolean splitOrders(Long id, Integer splitNum);
}
